<?php
class EntregasController extends AppController {

	var $name = 'Entregas';
	
	var $filters = array('telaEntregas' => array('Entrega' => array('Ordemservico.id' => array('label' => 'OS', 'condition' => '='),
																	'Pessoa.nome' => array('label' => 'NOME CLIENTE'),
																	'dataentrega' => array('label' => 'DATA ENTREGA'),
																	'Pessoa.municipio_id' => array('label' => 'CIDADE'),
																	'Status.nome' => array('label' => 'STATUS'))));

	function telaEntregas() {
		$this->Entrega->recursive = 4;
		//$entregas = array();
		$entregas/*Banco*/ = $this->paginate();
		/*
		foreach ($entregasBanco as $entrega) {
			$entrega['Pessoa']['nome'] = $this->Entrega->Ordemservico->Pessoa->field('nome', array('Pessoa.id' => $entrega['Ordemservico']['pessoa_id']));
			$municipioId = $this->Entrega->Ordemservico->Pessoa->field('municipio_id', array('Pessoa.id' => $entrega['Ordemservico']['pessoa_id']));
			$entrega['Municipio']['nome'] = $this->Entrega->Ordemservico->Pessoa->Municipio->field('nome', array('Municipio.id' => $municipioId));
			$entregas[] = $entrega;
		}*/
		$this->set('entregas', $entregas);
	}

	function consultar($id = null, $msg = null) {
		
		if ( !empty($this->data) ) {
			
			$entrega_id = ''; 
			if ( !empty($this->data['Entrega']['numero_os']) ) {
				$os_id = $this->Entrega->Ordemservico->field('id', array('Ordemservico.id' => $this->data['Entrega']['numero_os']));
				$entrega_id = $this->Entrega->field('id', array('Entrega.ordemservico_id' => $os_id));
			}
			if ( !empty($entrega_id) )
				$this->redirect(array('action' => 'agendarEntrega', $entrega_id));
			else
				$msg = 'Entrega não cadastrada. Favor tentar novamente.';
		}
		$this->set('msg', $msg);
	}

	function agendarEntrega($id = null, $msg = null) {
		$municipios = '';
		if (!empty($this->data)) {
			$this->Entrega->create();
			$this->data['Entrega']['ordemservico_id'] = $this->data['Entrega']['numero_os'];
			$this->data['Entrega']['valorreceber'] = $this->alterarValorMonetario($this->data['Entrega']['valorreceber']);
			if ($this->Entrega->save($this->data)) {
				( empty($this->data['Entrega']['id']) ) ? $msg = 'Agendamento Concluído.' : 'Dados alterados com sucesso!';
				$this->redirect(array('action' => 'agendarEntrega', $msg));
			} else {
				//$this->Session->setFlash('O Agendamento não foi concluído.');
				$msg = 'O Agendamento não foi concluído.';
				$municipios = $this->Entrega->Ordemservico->Pessoa->Municipio->find('list', array('conditions' => array('Municipio.id' => $this->data['Pessoa']['municipio_id'])));
			}
		}
		
		if ($id && empty($this->data)) {
			$this->data = $this->Entrega->read(null, $id);
			$pessoa = $this->Entrega->Ordemservico->Pessoa->find('first', array('conditions' => array('Pessoa.id' => $this->data['Ordemservico']['pessoa_id'])));
			$this->data['Pessoa'] = $pessoa['Pessoa'];
			$municipios = $this->Entrega->Ordemservico->Pessoa->Municipio->find('list', array('conditions' => array('Municipio.id' => $this->data['Pessoa']['municipio_id']))); 
		}
		
		$ordemservicos = $this->Entrega->Ordemservico->find('list');
		//$status = $this->Entrega->Status->find('list');
		$this->set(compact('ordemservicos', 'status', 'id', 'municipios', 'msg'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(sprintf(__('%s inválido.', true), 'Entrega'));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Entrega->save($this->data)) {
				$this->Session->setFlash(sprintf(__('O %s foi salvo.', true), 'entrega'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(sprintf(__('O %s não pode ser salvo. Por favor, tente novamente.', true), 'entrega'));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Entrega->read(null, $id);
		}
		$ordemservicos = $this->Entrega->Ordemservico->find('list');
		//$statuses = $this->Entrega->Status->find('list');
		$this->set(compact('ordemservicos', 'statuses'));
	}

	function delete($id = null, $msg = null) {
		if ($id) {
			if ( $this->Session->read('Auth.Usuario.perfilacesso') == 'Administrador' ) {
				if ($this->Entrega->delete($id)) {
					$msg = 'Dados de entrega apagados com sucesso!';
					$this->redirect(array('action'=>'consultar', $msg));
				} else 
					$msg = 'A Entrega não foi excluída.';
			} else 
				$msg = 'Somente o Administrador pode excluir uma Entrega.';
		}
		$this->redirect(array('action' => 'agendarEntrega', $id, $msg));
	}
	
	function carregarOs($osId){
		$this->layout = 'ajax';
		$id = $this->Entrega->Ordemservico->field('id', array('Ordemservico.id' => $osId));
		if ( !empty($id) ) {
			$this->data = $this->Entrega->Ordemservico->read(null, $id);
			$this->data['Municipio']['nome'] = $this->Entrega->Ordemservico->Pessoa->Municipio->field('nome', array('Municipio.id' => $this->data['Pessoa']['municipio_id']));
		} else 
			$this->data = array();
			
		echo json_encode($this->data);
		$this->render(false);
	}

	function confirmarEntrega($os_id = null, $msg = null) {
		
		if ( !empty($this->data['Entrega']['os_id']) ) {
			$this->data['OrdemservicosStatus']['funcionario'] = $this->Session->read('nome');
			$this->data['OrdemservicosStatus']['ordemservico_id'] = $this->data['Entrega']['os_id'];
			$this->data['OrdemservicosStatus']['status_id'] = 13;
			$this->data['OrdemservicosStatus']['descricao'] = 'Entrega Confirmada';
			//echo '<pre>'; print_r($this->data); echo '</pre>'; exit;
			$this->Entrega->Ordemservico->OrdemservicosStatus->create();
			if ($this->Entrega->Ordemservico->OrdemservicosStatus->save($this->data['OrdemservicosStatus'])) {
				$msg = 'Entrega confirmada.';
				$this->redirect(array('action' => 'telaEntregas', $msg));
			} else 
				$msg = 'A Entrega não foi confirmada.';
		} 
		
		$this->set(compact('os_id', 'msg'));
	}
	
}
?>